A wide variety of memory devices can be used to maintain and store data and instructions for various computers and similar systems. In particular, flash memory is a type of electronic memory media that can be rewritten and that can retain content without consumption of power. Flash memory has become popular, at least in part, because it combines the advantages of the high density and low cost of erasable programmable read only memory (EPROM) with the electrical erasability of electronically erasable programmable read only memory (EEPROM). Flash memory is non-volatile; it can be rewritten and can hold its content without power. It is used in many portable electronic products, such as cell phones, portable computers, voice recorders, thumbnail drives and the like, as well as in many larger electronic systems, such as cars, planes, industrial control systems, etc. The fact that flash memory can be rewritten as well as its retention of data without a power source, small size and light weight have all combined to make flash memory devices useful and popular means for transporting and maintaining data.
As flash memory devices have continued to evolve, the density of data stored in such devices is increased. With the increasing density of data, read errors can be increased due in part to the close proximity of read threshold levels. Further, as erase cycles increase, read errors can occur more frequently. It is desirable to maintain or improve the accuracy and reliability of flash devices. Further, when an error correction code component is also employed, it is desirable to reduce the workload for the error correction code component and thereby reduce any potential read latency associated therewith as well as reduce the gate count for implementation.